Option Strict On
Option Explicit On

'Copyright (c) 2007-2010, William Severance, Jr., WESNet Designs
'All rights reserved.

'Redistribution and use in source and binary forms, with or without modification, are permitted
'provided that the following conditions are met:

'Redistributions of source code must retain the above copyright notice, this list of conditions
'and the following disclaimer.

'Redistributions in binary form must reproduce the above copyright notice, this list of conditions
'and the following disclaimer in the documentation and/or other materials provided with the distribution.

'Neither the name of William Severance, Jr. or WESNet Designs may be used to endorse or promote
'products derived from this software without specific prior written permission.

'Disclaimer: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
'            OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
'            AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER BE LIABLE
'            FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
'            LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
'            INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
'            OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
'            IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

'Although I will try to answer questions regarding the installation and use of this software when
'such questions are submitted via e-mail to the below address, no promise of further
'support or enhancement is made nor should be assumed.

'Developer Contact Information:
'     William Severance, Jr.
'     WESNet Designs
'     679 Upper Ridge Road
'     Bridgton, ME 04009
'     Phone: 207-647-9375
'     E-Mail: bill@wesnetdesigns.com
'     Website: www.wesnetdesigns.com

Imports DotNetNuke.Services.Exceptions
Imports DotNetNuke.Security

Namespace WESNet.DNN.Modules.EPrayer
    Partial Class PersonalSettings
        Inherits EPrayerModuleBase

#Region "Private Members"
        Private _No As String
        Private _Yes As String
#End Region

#Region "Private Methods"
        Private Function YesNo(ByVal value As Boolean) As String
            If value Then
                Return _Yes
            Else
                Return _No
            End If
        End Function
#End Region

#Region "Event Handlers"

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Try
                If IsAnonymous Then
                    Response.Redirect(AccessDeniedURL(Localize("Access_Denied")), True)
                End If

                _No = Localization.GetString("No.Text")
                _Yes = Localization.GetString("Yes.Text")

                If Not IsPostBack Then
                    With UserInfo
                        lblUsername.Text = .Username
                        lblDisplayname.Text = .DisplayName
                        tbAlias.Text = .Alias
                        teSignature.Text = .Signature
                        rblIdentifyBy.SelectedValue = .IdentifyBy.ToString
                        lblModerationEnabled.Text = YesNo(MyConfiguration.EnableModeration)
                        lblIsTrusted.Text = YesNo(.IsTrusted)
                        lblIsModerator.Text = YesNo(.IsModerator)
                        If IsUnderBan Then
                            lblIsBanned.Text = _Yes & " - " & Localize("Banned_Until") & " " & .BannedUntilDate.ToShortDateString()
                        Else
                            lblIsBanned.Text = _No
                        End If
                        tbPageSize.Text = .PageSize.ToString
                        ddlOrderBy.SelectedValue = .OrderBy
                        cbIsTrackingAll.Checked = .IsTrackingAllPosts

                        'rblMailFormat.DataSource = [Enum].GetNames(GetType(DotNetNuke.Services.Mail.MailFormat))
                        'rblMailFormat.DataBind()
                        'rblMailFormat.SelectedValue = .MailFormat.ToString

                        lblRequests.Text = .Requests.ToString
                        lblUpdates.Text = .Updates.ToString
                        If Not Null.IsNull(.LastVisitedDate) Then lblLastVisit.Text = .LastVisitedDate.ToLongDateString
                        If Not Null.IsNull(.LastPostedDate) Then
                            lnkLastPost.Text = .LastPostedDate.ToLongDateString
                            If Not Null.IsNull(.LastPostID) Then lnkLastPost.NavigateUrl = PostURL(.LastPostID, True)
                        End If
                    End With
                End If
            Catch exc As Exception
                ProcessModuleLoadException(Me, exc)
            End Try
        End Sub

        Protected Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
            Dim _Signature As String

            Try
                If IsAnonymous Then
                    Response.Redirect(AccessDeniedURL(Localize("Access_Denied")), True)
                End If

                ' Check _Signature for cross site scripting
                Dim ps As New PortalSecurity
                _Signature = ps.InputFilter(teSignature.Text, PortalSecurity.FilterFlag.NoScripting)

                With UserInfo
                    .Alias = tbAlias.Text
                    .Signature = Server.HtmlDecode(_Signature)
                    .IdentifyBy = Integer.Parse(rblIdentifyBy.SelectedValue)
                    .PageSize = Integer.Parse(tbPageSize.Text)
                    .OrderBy = ddlOrderBy.SelectedValue
                    '.MailFormat = CType([Enum].Parse(GetType(DotNetNuke.Services.Mail.MailFormat), rblMailFormat.SelectedValue), DotNetNuke.Services.Mail.MailFormat)
                End With

                Dim epc As New EPrayerController
                epc.UpdateUser(UserInfo)
                epc.StartEndTrackingAllPosts(ModuleId, UserId, cbIsTrackingAll.Checked)
                epc.ClearUserCache(ModuleId, UserId)
                Response.Redirect(ReturnUrl, True)

            Catch exc As Exception
                ProcessModuleLoadException(Me, exc)
            End Try
        End Sub

        Protected Sub cmdCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdCancel.Click
            Try
                Response.Redirect(ReturnUrl, True)
            Catch exc As Exception
                ProcessModuleLoadException(Me, exc)
            End Try
        End Sub

#End Region


    End Class
End Namespace
